#pragma once
#include <memory>

struct Resource;

// C API
Resource* acquireResource() {
  // alloc resource
  return NULL;
}
void releaseResource(Resource* resource) {
  // free resource

}

// C++ API
using ResourceRaii = std::unique_ptr<Resource, decltype(&releaseResource)>;
ResourceRaii acquireResource() {
	return NULL;
}

